package org.groupg.practice.collections;

import org.apache.commons.collections4.ListUtils;
import java.util.Arrays;
import java.util.List;

public class ListUtilsExample {

    public static void main(String[] args) {
        // 创建两个列表
        List<String> list1 = Arrays.asList("a", "b", "c");
        List<String> list2 = Arrays.asList("b", "c", "d");

        // 求交集
        List<String> intersection = ListUtils.intersection(list1, list2);
        System.out.println("Intersection: " + intersection); // 输出: [b, c]

        // 求并集（去重）
        List<String> union = ListUtils.union(list1, list2);
        System.out.println("Union: " + union); // 输出: [a, b, c, d]

        // 求差集
        List<String> subtract = ListUtils.subtract(list1, list2);
        System.out.println("Subtract: " + subtract); // 输出: [a]

        // 判断两个列表是否完全相等（包括顺序）
        boolean isEqualList = ListUtils.isEqualList(list1, list2);
        System.out.println("Are list1 and list2 equal (order sensitive)? " + isEqualList); // 输出: false

        // 将空列表转换为空（防止NPE）
        List<String> emptyIfNull = ListUtils.emptyIfNull(null);
        System.out.println("Empty if null: " + emptyIfNull); // 输出: []

        // 计算列表的哈希码
        int hashCodeForList = ListUtils.hashCodeForList(list1);
        System.out.println("Hash code for list1: " + hashCodeForList); // 输出: 列表的哈希码
    }
}